# coding=utf-8
"""
code 模板
**##..

** 为服务（server）级别的编号，一个服务一个编号。大家通用的错误编号从0开始，或者小于六位
## 为应用/资源（APP)级别的编号
.. 具体的错误编号

注意，这里的所有错误都是为了从很深的函数调用栈快速返回到视图层，并返回结果。
所以可以不能遇见的错误，不能在这里定义，能预见到的错误，都应该被定义出来。
所有希望被报警的错误，都应该使用log.error或其他的错误类。

错误码创建的逻辑是，错误码统一在这个文件下声明，具体的错误类声明在各个app下
"""


class StandardErrorRecord:
	def __init__(self, code, detail):
		self.code = code
		self.detail = detail


SER = StandardErrorRecord


class ErrorRecord:
	SUCCESS = SER(200, '成功')
	NOTFOUND = SER(404, '莫须有的页面')

	NOT_DEFINED = SER(1000, '未定义的错误')
	PERMISSION_ERROE = SER(1001, '身份验证失败')
	MISS_REQUIRED_PARAM = SER(1002, '缺少必要参数')
	OBJECT_NOT_FOUND = SER(1004, '未找到对象')
	REQUEST_THROTTLED = SER(1005, '请求过于频繁')
	RESOURCE_EXISTED_ERROR = SER(1006, '资源已存在')
	RESOURCE_NOT_EXIST_ERROR = SER(1007, '资源不存在')
	NEED_REDIRT_ERROR = SER(1008, '不可直接访问')
	NETWORK_ERROR = SER(1009, '网络错误')
	DB_ERROR = SER(1010, '服务器出小差了')
	NOT_LOGIN = SER(1011, '请先登录，再操作')
	EMPTY_CONTENT = SER(1012, '内容不能为空哦')
	PERMISSION_DENIED = SER(1013, '没有权限')

	REPEATED_USERNAME = SER(100000, '该用户名已存在')
	WRONG_PASSWORD = SER(100001, '账号或密码出错')


ER = ErrorRecord
